Legrand / Raritan Xerus™ JSON-RPC API for Remote Access Devices like KX4-101, KX3G2
Loading...
Searching...
No Matches
KvmDevice.idl
1#ifndef __RADM_KVM_DEVICE_IDL__
2#define __RADM_KVM_DEVICE_IDL__
3
4#include <Device.idl>
5#include <KvmPort.idl>
6#include <LocalMonitor.idl>
7#include <LocalPort.idl>
8#include <TerminalBlock.idl>
9#include <UsbProfileSettings.idl>
10#include <VideoResolution.idl>
11
12module radm {
13
14 interface KvmDevice extends Device {
15
16 constant int ERR_EDID_DATA_IN_USE = 10; ///< EDID data is in use, cannot be deleted
17 constant int ERR_EDID_GENERATION_FAILED = 11; ///< Failed to generate custom EDID
18
19 structure CustomEdidLimits {
20 int maxWidth;
21 int maxHeight;
22 int minWidth;
23 int minHeight;
24 int maxFrameRate;
25 int minFrameRate;
26 double maxPixelClock;
27 double minPixelClock;
28 int maxPixels;
29 };
30
31 enumeration EdidInterfaceType {
32 DVI, ///< DVI EDID data
33 HDMI ///< HDMI EDID data
34 };
35
36 /** EDID data for a given resolution */
37 structure EdidData {
38 VideoResolution resolution; ///< Resolution described by the EDID data
39 string description; ///< Text describing the EDID data
40 EdidInterfaceType videoInterface; ///< Video interface type the EDID data is meant for
41 };
42
43 /** An uploaded USB profile */
44 structure UsbProfile {
45 long key; ///< Profile key
46 int id; ///< Profile ID
47 string name; ///< Profile name
48 string description; ///< Profile description
49 boolean systemProfile; ///< Whether the profile is a system (built-in) profile
50 UsbProfileSettings settings; ///< Profile settings
51 };
52
53 /** Device temperature reading */
55 boolean available; ///< Whether the reading data is valid
56 float currentValue; ///< Current device temperature (in degree Celsius)
57 float maximumValue; ///< Historical temperature maximum (in degree Celsius)
58 float minimumValue; ///< Historical temperature minimum (in degree Celsius)
59 };
60
61 /**
62 * Get KVM ports of this device
63 *
64 * @return List of KVM ports
65 */
66 vector<KvmPort> getKvmPorts();
67
68 /**
69 * Get monitor(s) locally attached to the device
70 *
71 * @return List of locally attached monitors
72 */
73 vector<LocalMonitor> getLocalMonitors();
74
75 /**
76 * Gets local control port of the device
77 *
78 * @return Local port if present on the device
79 */
81
82 /**
83 * Get the terminal block of the device
84 *
85 * @return Terminal block if present on the device
86 */
88
89 /**
90 * Get the device's internal temperature
91 *
92 * @return Device temperature reading
93 */
95
96 /**
97 * Get data of the video resolutions supported by the device
98 *
99 * @return List of EDID data built into the device
100 */
101 vector<EdidData> getSupportedResolutionData();
102
103 /**
104 * Get data of the video resolution data uploaded to the device
105 *
106 * @return List of custom EDID data
107 */
108 vector<EdidData> getCustomEdidData();
109
110 /**
111 * Delete previously uploaded custom EDID data
112 *
113 * @param resolution Video resolution to delete
114 * @param videoInterface Interface type to delete resolution for
115 *
116 * @return 0 on success
117 * @return 1 if the given resolution/interface combination could not be found
118 * @return 10 if the given resolution/interface combination currently is in use
119 */
120 int deleteCustomEdidData(in VideoResolution resolution, in EdidInterfaceType videoInterface);
121
122 /**
123 * Create custom EDID
124 *
125 * @param resolution Resolution for custom EDID
126 *
127 * @return 0 if success
128 * @return 1 if no valid EDID can be generated from the provided resolution
129 * @return 2 if custom EDID data generation is not supported
130 * @return 11 if there was an internal error while generating the EDID data
131 */
133
134 /**
135 * Validate custom EDID argument and calculate pixel clock
136 *
137 * @param resolution Resolution for custom EDID
138 * @param resultingPixelClock Pixel clock calculated if valid (output)
139 *
140 * @return 0 if validation successful
141 * @return 1 if the provided resolution is not valid for EDID generation
142 * @return 2 if if custom EDID data generation is not supported
143 */
144 int validateCustomEdidArgument(in VideoResolution resolution, out double resultingPixelClock);
145
146 /**
147 * Get limits for custom EDID generation
148 *
149 * @return limits
150 */
152
153 /**
154 * Get USB profiles available on the device
155 *
156 * @return USB profiles, or an empty list in case USB profiles are not supported
157 */
158 vector<UsbProfile> getUsbProfiles();
159
160 /**
161 * Delete a previously uploaded USB profile
162 *
163 * @param Profile ID of the profile to be deleted
164 *
165 * @return 0 on success
166 * @return 1 if the profile with the given ID could not be found
167 */
168 int deleteUsbProfile(in int profileId);
169
170 /** Event: The list of available USB profiles changed */
171 valueobject UsbProfilesChangedEvent extends event.UserEvent {
172 vector<UsbProfile> newUsbProfiles; ///< USB profile list after the change
173 };
174
175 /** Event: A USB profile was added */
177 UsbProfile profile; ///< Added profile
178 };
179
180 /** Event: A USB profile was deleted */
182 UsbProfile deletedProfile; ///< Deleted profile
183 };
184
185 /** Event: Custom EDID data changed */
186 valueobject CustomEdidDataChangedEvent extends event.UserEvent {
187 vector<EdidData> newCustomEdidData; ///< List of custom EDID data after the change
188 };
189
190 /** Event: Device temperature has changed */
191 valueobject TemperatureChangedEvent extends idl.Event {
192 TemperatureReading newReading; ///< Device temperature reading after the change
193 };
194 };
195
196}
197
198#endif //__RADM_KVM_DEVICE_IDL__
int validateCustomEdidArgument(in VideoResolution resolution, out double resultingPixelClock)
Validate custom EDID argument and calculate pixel clock.
vector< LocalMonitor > getLocalMonitors()
Get monitor(s) locally attached to the device.
LocalPort getLocalPort()
Gets local control port of the device.
constant int ERR_EDID_DATA_IN_USE
EDID data is in use, cannot be deleted.
Definition KvmDevice.idl:16
vector< UsbProfile > getUsbProfiles()
Get USB profiles available on the device.
vector< EdidData > getSupportedResolutionData()
Get data of the video resolutions supported by the device.
constant int ERR_EDID_GENERATION_FAILED
Failed to generate custom EDID.
Definition KvmDevice.idl:17
TemperatureReading getInternalTemperature()
Get the device's internal temperature.
vector< EdidData > getCustomEdidData()
Get data of the video resolution data uploaded to the device.
TerminalBlock getTerminalBlock()
Get the terminal block of the device.
int createCustomEdid(in VideoResolution resolution)
Create custom EDID.
@ DVI
DVI EDID data.
Definition KvmDevice.idl:32
@ HDMI
HDMI EDID data.
Definition KvmDevice.idl:33
vector< KvmPort > getKvmPorts()
Get KVM ports of this device.
int deleteUsbProfile(in int profileId)
Delete a previously uploaded USB profile.
CustomEdidLimits getCustomEdidLimits()
Get limits for custom EDID generation.
int deleteCustomEdidData(in VideoResolution resolution, in EdidInterfaceType videoInterface)
Delete previously uploaded custom EDID data.
Interface for local user interface.
Definition LocalPort.idl:12
TerminalBlock interface
Basic IDL definitions.
Definition Event.idl:10
Radm Model.
Definition AccessPort.idl:8
Common base for all events.
Definition Event.idl:13
Event: Custom EDID data changed.
vector< EdidData > newCustomEdidData
List of custom EDID data after the change.
EDID data for a given resolution.
Definition KvmDevice.idl:37
VideoResolution resolution
Resolution described by the EDID data.
Definition KvmDevice.idl:38
string description
Text describing the EDID data.
Definition KvmDevice.idl:39
EdidInterfaceType videoInterface
Video interface type the EDID data is meant for.
Definition KvmDevice.idl:40
Event: Device temperature has changed.
TemperatureReading newReading
Device temperature reading after the change.
Device temperature reading.
Definition KvmDevice.idl:54
float currentValue
Current device temperature (in degree Celsius)
Definition KvmDevice.idl:56
boolean available
Whether the reading data is valid.
Definition KvmDevice.idl:55
float minimumValue
Historical temperature minimum (in degree Celsius)
Definition KvmDevice.idl:58
float maximumValue
Historical temperature maximum (in degree Celsius)
Definition KvmDevice.idl:57
Event: A USB profile was added.
UsbProfile profile
Added profile.
Event: A USB profile was deleted.
UsbProfile deletedProfile
Deleted profile.
An uploaded USB profile.
Definition KvmDevice.idl:44
string description
Profile description.
Definition KvmDevice.idl:48
boolean systemProfile
Whether the profile is a system (built-in) profile.
Definition KvmDevice.idl:49
UsbProfileSettings settings
Profile settings.
Definition KvmDevice.idl:50
string name
Profile name.
Definition KvmDevice.idl:47
Event: The list of available USB profiles changed.
vector< UsbProfile > newUsbProfiles
USB profile list after the change.